/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jpa.entities;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Usuario
 */
@Entity
@Table(name = "venta", catalog = "Sig", schema = "")
@NamedQueries({
    @NamedQuery(name = "Venta.findAll", query = "SELECT v FROM Venta v"),
    @NamedQuery(name = "Venta.findByIdVenta", query = "SELECT v FROM Venta v WHERE v.idVenta = :idVenta"),
    @NamedQuery(name = "Venta.findByCantCuotas", query = "SELECT v FROM Venta v WHERE v.cantCuotas = :cantCuotas"),
    @NamedQuery(name = "Venta.findByCotizacion", query = "SELECT v FROM Venta v WHERE v.cotizacion = :cotizacion"),
    @NamedQuery(name = "Venta.findByDtoPlanRecambio", query = "SELECT v FROM Venta v WHERE v.dtoPlanRecambio = :dtoPlanRecambio"),
    @NamedQuery(name = "Venta.findByFecha", query = "SELECT v FROM Venta v WHERE v.fecha = :fecha"),
    @NamedQuery(name = "Venta.findByFechaVen", query = "SELECT v FROM Venta v WHERE v.fechaVen = :fechaVen"),
    @NamedQuery(name = "Venta.findByMoneda", query = "SELECT v FROM Venta v WHERE v.moneda = :moneda"),
    @NamedQuery(name = "Venta.findByMontoContado", query = "SELECT v FROM Venta v WHERE v.montoContado = :montoContado"),
    @NamedQuery(name = "Venta.findByNumAuto", query = "SELECT v FROM Venta v WHERE v.numAuto = :numAuto"),
    @NamedQuery(name = "Venta.findByNumTarjeta", query = "SELECT v FROM Venta v WHERE v.numTarjeta = :numTarjeta"),
    @NamedQuery(name = "Venta.findByOrigen", query = "SELECT v FROM Venta v WHERE v.origen = :origen"),
    @NamedQuery(name = "Venta.findByTipoDeVenta", query = "SELECT v FROM Venta v WHERE v.tipoDeVenta = :tipoDeVenta")})
public class Venta implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idVenta", nullable = false)
    private Integer idVenta;
    @Column(name = "cantCuotas")
    private Integer cantCuotas;
    @Column(name = "cotizacion", precision = 22)
    private Double cotizacion;
    @Column(name = "dtoPlanRecambio", precision = 22)
    private Double dtoPlanRecambio;
    @Basic(optional = false)
    @Column(name = "fecha", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date fecha;
    @Column(name = "fechaVen")
    @Temporal(TemporalType.DATE)
    private Date fechaVen;
    @Basic(optional = false)
    @Column(name = "moneda", nullable = false)
    private boolean moneda;
    @Column(name = "montoContado", precision = 22)
    private Double montoContado;
    @Column(name = "numAuto")
    private BigInteger numAuto;
    @Column(name = "numTarjeta")
    private Integer numTarjeta;
    @Basic(optional = false)
    @Column(name = "origen", nullable = false)
    private boolean origen;
    @Basic(optional = false)
    @Column(name = "tipoDeVenta", nullable = false, length = 45)
    private String tipoDeVenta;
    @OneToMany(mappedBy = "venta")
    private List<Contabilidad> contabilidadList;
    @OneToMany(mappedBy = "venta")
    private List<Productoinventario> productoinventarioList;
    @JoinColumn(name = "idUsuario", referencedColumnName = "idUsuario", nullable = false)
    @ManyToOne(optional = false)
    private Usuario usuario;
    @JoinColumn(name = "idTarjeta", referencedColumnName = "idTarjeta")
    @ManyToOne
    private Tarjeta tarjeta;
    @JoinColumn(name = "idFactura", referencedColumnName = "idFactura", nullable = false)
    @ManyToOne(optional = false)
    private Factura factura;

    public Venta() {
    }

    public Venta(Integer idVenta) {
        this.idVenta = idVenta;
    }

    public Venta(Integer idVenta, Date fecha, boolean moneda, boolean origen, String tipoDeVenta) {
        this.idVenta = idVenta;
        this.fecha = fecha;
        this.moneda = moneda;
        this.origen = origen;
        this.tipoDeVenta = tipoDeVenta;
    }

    public Integer getIdVenta() {
        return idVenta;
    }

    public void setIdVenta(Integer idVenta) {
        this.idVenta = idVenta;
    }

    public Integer getCantCuotas() {
        return cantCuotas;
    }

    public void setCantCuotas(Integer cantCuotas) {
        this.cantCuotas = cantCuotas;
    }

    public Double getCotizacion() {
        return cotizacion;
    }

    public void setCotizacion(Double cotizacion) {
        this.cotizacion = cotizacion;
    }

    public Double getDtoPlanRecambio() {
        return dtoPlanRecambio;
    }

    public void setDtoPlanRecambio(Double dtoPlanRecambio) {
        this.dtoPlanRecambio = dtoPlanRecambio;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Date getFechaVen() {
        return fechaVen;
    }

    public void setFechaVen(Date fechaVen) {
        this.fechaVen = fechaVen;
    }

    public boolean getMoneda() {
        return moneda;
    }

    public void setMoneda(boolean moneda) {
        this.moneda = moneda;
    }

    public Double getMontoContado() {
        return montoContado;
    }

    public void setMontoContado(Double montoContado) {
        this.montoContado = montoContado;
    }

    public BigInteger getNumAuto() {
        return numAuto;
    }

    public void setNumAuto(BigInteger numAuto) {
        this.numAuto = numAuto;
    }

    public Integer getNumTarjeta() {
        return numTarjeta;
    }

    public void setNumTarjeta(Integer numTarjeta) {
        this.numTarjeta = numTarjeta;
    }

    public boolean getOrigen() {
        return origen;
    }

    public void setOrigen(boolean origen) {
        this.origen = origen;
    }

    public String getTipoDeVenta() {
        return tipoDeVenta;
    }

    public void setTipoDeVenta(String tipoDeVenta) {
        this.tipoDeVenta = tipoDeVenta;
    }

    public List<Contabilidad> getContabilidadList() {
        return contabilidadList;
    }

    public void setContabilidadList(List<Contabilidad> contabilidadList) {
        this.contabilidadList = contabilidadList;
    }

    public List<Productoinventario> getProductoinventarioList() {
        return productoinventarioList;
    }

    public void setProductoinventarioList(List<Productoinventario> productoinventarioList) {
        this.productoinventarioList = productoinventarioList;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Tarjeta getTarjeta() {
        return tarjeta;
    }

    public void setTarjeta(Tarjeta tarjeta) {
        this.tarjeta = tarjeta;
    }

    public Factura getFactura() {
        return factura;
    }

    public void setFactura(Factura factura) {
        this.factura = factura;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idVenta != null ? idVenta.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Venta)) {
            return false;
        }
        Venta other = (Venta) object;
        if ((this.idVenta == null && other.idVenta != null) || (this.idVenta != null && !this.idVenta.equals(other.idVenta))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.Venta[idVenta=" + idVenta + "]";
    }

}
